---
title: Hydrate a hazard group from a reader
summary: Maps a data reader row to a clsHazardGroup instance during collection retrieval.
status: draft
owner: SAIF Documentation Generator
last_reviewed: 2026-08-21
library: SAIF.Business.Policy
reference_type: package
operation_id: op-02-hydrate-hazard-group
trigger: Row loop in op-01 AfterRetrieve
---

# Hydrate a hazard group from a reader

Maps a single data-reader row to an initialized, persisted-marked `clsHazardGroup` instance.

| Field | Value |
| --- | --- |
| **Operation ID** | op-02-hydrate-hazard-group |
| **Trigger** | Step 6 of [Retrieve hazard groups effective on a date](op-01-retrieve-hazard-groups.md) |
| **Inputs** | `IDataPortalInfo`, open reader positioned on a row |
| **Outputs** | Initialized, "old"-marked business object |
| **Primary components** | `clsHazardGroup.Load`, `clsHazardGroup.Fill` |
| **Entry point** | SAIF.Business.Policy/clsHazardGroup.vb |

## Steps

1. Cast the reader to `clsSAIFDataReader` and map columns to fields: `HAZARD_GROUP_ID`, `NCCI_HAZARD_GROUP_CODE`, `EFFECTIVE_DATE`, `EXPIRATION_DATE` (smart date), `HAZARD_GROUP_SHORT_DESCR`, `HAZARD_GROUP_LONG_DESCR`, `CREATE_DATE`, `CREATE_USER`, `UPDATE_DATE` (smart date), `UPDATE_USER` (smart string).
2. Create `New clsHazardGroup.Criteria(inDataPortalInfo)` and assign it to `CriteriaObject`.
3. Call `MarkOld()` so the framework treats the instance as unmodified/persisted.

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start(["Row loop in op-01<br>AfterRetrieve"]) --> A["Cast reader to<br>clsSAIFDataReader and map<br>columns to fields"]
	A --> B["Create clsHazardGroup.Criteria<br>and assign to CriteriaObject"]
	B --> C["Call MarkOld()"]
	C --> End(["Return initialized,<br>persisted-marked instance"])
```

## Failure and edge-case behavior
- `Fill` assumes every column is present in the reader; nullable columns are absorbed by `clsSmartDate`/`clsSmartString`.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)

## Sources
- `SAIF.Business.Policy/clsHazardGroup.vb`
